



<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#FFF">
  <link rel="apple-touch-icon" sizes="180x180" href="/blog/images/apple-touch-icon.png">

<link rel="icon" type="image/ico" sizes="32x32" href="/blog/images/favicon.ico">
  <meta http-equiv="Cache-Control" content="no-transform">
  <meta http-equiv="Cache-Control" content="no-siteapp">


<link rel="alternate" type="application/rss+xml" title="宋胖子" href="https://song-ruipeng.gitee.io/blog/rss.xml" />
<link rel="alternate" type="application/atom+xml" title="宋胖子" href="https://song-ruipeng.gitee.io/blog/atom.xml" />
<link rel="alternate" type="application/json" title="宋胖子" href="https://song-ruipeng.gitee.io/blog/feed.json" />

<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Mulish:300,300italic,400,400italic,700,700italic%7CFredericka%20the%20Great:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20JP:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20SC:300,300italic,400,400italic,700,700italic%7CInconsolata:300,300italic,400,400italic,700,700italic&display=swap&subset=latin,latin-ext">

<link rel="stylesheet" href="/blog/css/app.css?v=0.2.5">

  
  <meta name="keywords" content="少时诵诗书" />


<link rel="canonical" href="https://song-ruipeng.gitee.io/blog/2023/04/18/%E5%8D%81.HTTP/">



  <title>
HTTP总结 - 我的日志 |
Yume Shoka = 宋胖子</title>
<meta name="generator" content="Hexo 6.3.0"></head>
<body itemscope itemtype="http://schema.org/WebPage">
  <div id="loading">
    <div class="cat">
      <div class="body"></div>
      <div class="head">
        <div class="face"></div>
      </div>
      <div class="foot">
        <div class="tummy-end"></div>
        <div class="bottom"></div>
        <div class="legs left"></div>
        <div class="legs right"></div>
      </div>
      <div class="paw">
        <div class="hands left"></div>
        <div class="hands right"></div>
      </div>
    </div>
  </div>
  <div id="container">
    <header id="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="inner">
        <div id="brand">
          <div class="pjax">
          
  <h1 itemprop="name headline">HTTP总结
  </h1>
  
<div class="meta">
  <span class="item" title="创建时间：2023-04-18 14:47:21">
    <span class="icon">
      <i class="ic i-calendar"></i>
    </span>
    <span class="text">发表于</span>
    <time itemprop="dateCreated datePublished" datetime="2023-04-18T14:47:21+08:00">2023-04-18</time>
  </span>
</div>


          </div>
        </div>
        <nav id="nav">
  <div class="inner">
    <div class="toggle">
      <div class="lines" aria-label="切换导航栏">
        <span class="line"></span>
        <span class="line"></span>
        <span class="line"></span>
      </div>
    </div>
    <ul class="menu">
      <li class="item title"><a href="/blog/" rel="start">Yume Shoka</a></li>
    </ul>
    <ul class="right">
      <li class="item theme">
        <i class="ic i-sun"></i>
      </li>
      <li class="item search">
        <i class="ic i-search"></i>
      </li>
    </ul>
  </div>
</nav>

      </div>
      <div id="imgs" class="pjax">
        <ul>
          <li class="item" data-background-image=" https://cancan-wx.oss-cn-hangzhou.aliyuncs.com/bg/6833939bly1gipeu1usa7j20zk0m8b29.jpg"></li>
          <li class="item" data-background-image=" https://cancan-wx.oss-cn-hangzhou.aliyuncs.com/bg/6833939bly1gipeyhsblkj20zk0m81kx.jpg"></li>
          <li class="item" data-background-image=" https://cancan-wx.oss-cn-hangzhou.aliyuncs.com/bg/6833939bly1gipewkhf1zj20zk0m81kx.jpg"></li>
          <li class="item" data-background-image=" https://cancan-wx.oss-cn-hangzhou.aliyuncs.com/bg/6833939bly1giclfb3vzhj20zk0m8wny.jpg"></li>
          <li class="item" data-background-image=" https://cancan-wx.oss-cn-hangzhou.aliyuncs.com/bg/6833939bly1gipesng5oej20zk0m87d4.jpg"></li>
          <li class="item" data-background-image=" https://cancan-wx.oss-cn-hangzhou.aliyuncs.com/bg/6833939bly1giclil3m4ej20zk0m8tn8.jpg"></li>
        </ul>
      </div>
    </header>
    <div id="waves">
      <svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
        <defs>
          <path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z" />
        </defs>
        <g class="parallax">
          <use xlink:href="#gentle-wave" x="48" y="0" />
          <use xlink:href="#gentle-wave" x="48" y="3" />
          <use xlink:href="#gentle-wave" x="48" y="5" />
          <use xlink:href="#gentle-wave" x="48" y="7" />
        </g>
      </svg>
    </div>
    <main>
      <div class="inner">
        <div id="main" class="pjax">
          
  <div class="article wrap">
    
<div class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList">
<i class="ic i-home"></i>
<span><a href="/blog/">首页</a></span><i class="ic i-angle-right"></i>
<span  class="current" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" itemprop="item" rel="index" title="分类于 我的日志"><span itemprop="name">我的日志</span></a>
<meta itemprop="position" content="1" /></span>
</div>

    <article itemscope itemtype="http://schema.org/Article" class="post block" lang="zh-CN">
  <link itemprop="mainEntityOfPage" href="https://song-ruipeng.gitee.io/blog/2023/04/18/%E5%8D%81.HTTP/">

  <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="image" content="/blog/images/avatar.jpg">
    <meta itemprop="name" content="宋胖子">
    <meta itemprop="description" content=", 欢迎大家一起交流">
  </span>

  <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
    <meta itemprop="name" content="宋胖子">
  </span>

  <div class="body md" itemprop="articleBody">
    

    <h2 id="一http"><a class="markdownIt-Anchor" href="#一http">#</a> 一.HTTP</h2>
<h3 id="1get和post的请求的区别"><a class="markdownIt-Anchor" href="#1get和post的请求的区别">#</a> 1.GET 和 POST 的请求的区别？</h3>
<ul>
<li>应用场景：GET 请求时一个幂等的请求，一般 GET 请求用于等于服务器不会产生影响的场景，比如说请求一个网页的资源。而 POST 不是一个幂等的请求，一般用于对服务器资源会产生影响的场景，比如注册用户这一类的操作。</li>
<li>是否缓存：因为两者应用场景不同，浏览器一般对 Get 请求缓存，但很少对 Post 缓存。</li>
<li>发送报文格式：Get 请求的报文中实体部分为空，Post 请求的报文中实体部分一般为想服务器发送的数据。</li>
<li>安全性：Get 请求可以将请求的参数放入 url 中向服务器发送，这样的做法对 Post 请求来说是不太安全的，因为请求的 url 会被保留在历史记录中。</li>
<li>请求长度：浏览器由于对 URL 长度的限制，所以会影响 Get 请求发生数据时的长度。这个限制是浏览器规定的，并不是 RFC 规定的。</li>
<li>参数类型：POST 的参数传递支持更多的数据类型。</li>
</ul>
<h3 id="2-常见的http请求方法"><a class="markdownIt-Anchor" href="#2-常见的http请求方法">#</a> 2. 常见的 HTTP 请求方法</h3>
<ul>
<li>GET: 向服务器获取数据；</li>
<li>POST：将实体提交到指定的资源，通常会造成服务器资源的修改；</li>
<li>PUT：上传文件，更新数据；</li>
<li>DELETE：删除服务器上的对象；</li>
<li>HEAD：获取报文首部，与 GET 相比，不返回报文主体部分；</li>
<li>OPTIONS：询问支持的请求方法，用来跨域请求；</li>
<li>CONNECT：要求在与代理服务器通信时建立隧道，使用隧道进行 TCP 通信；</li>
<li>TRACE: 回显服务器收到的请求，主要⽤于测试或诊断。</li>
</ul>
<h3 id="3http10和http11之间有哪些区别"><a class="markdownIt-Anchor" href="#3http10和http11之间有哪些区别">#</a> 3.HTTP1.0 和 HTTP1.1 之间有哪些区别？</h3>
<h4 id="http10和http11有以下区别"><a class="markdownIt-Anchor" href="#http10和http11有以下区别">#</a> HTTP1.0 和 HTTP1.1 有以下区别:</h4>
<ul>
<li>🔗方式：HTTP1.0 默认使用非持久连接，而 HTTP1.1 默认使用持久连接。HTTP 通过使用持久连接来使多个 HTTP 请求复用同一个 TCP 连接，以此来避免使用非持久连接时每次需要建立连接的时延。</li>
<li>资源请求：在 HTTP1.0 中，存在一些浪费带宽的现象，例如客户端只是需要摸个对象部分，而服务器确将整个对象送过来了，并且不支持 - 断点续传 - 功能，HTTP1.1 则在请求头引入了 range 头域，它允许只请求资源的某个部分，即返回码是 206。</li>
<li>缓存：HTTP1.0 主要使用了 header 里的 if-Modified-Since、Expire 来作为缓存判断的标准，HTTP1.1 则引入了更多的缓存控制策略，例如 Etag,if-Unmodified-Since、if-Match、if-None-Match 等。</li>
<li>HTTP1.1 中新增了 host 字段，用来指定服务器的域名。HTTP1.0 中认为每台服务器都绑定唯一的 IP，因此，请求消息并没有传递主机名。</li>
<li>Http1.1 相对于 Http1.0 新增了许多请求方法，如 PUT,HEAD,OPTIONS 等。</li>
</ul>
<h4 id="http11和http20的区别"><a class="markdownIt-Anchor" href="#http11和http20的区别">#</a> Http1.1 和 Http2.0 的区别</h4>
<ul>
<li>二进制协议：Http2.0 是一个二进制协议。在 Http1.1 中，报文的头信息必须是文本 (ASCII 编码)，数据体可以说文本，也可以是二进制。Http2 则是一个彻底的二进制协议，头信息和数据体都是二进制，并且统称为’帧’，可以分为头信息帧和数据帧。帧是多路复用的基础。</li>
<li>多路复用：Http2.0 实现了多路复用，Http2 仍然复用 TCP 连接，但是在一个连接里，客户端和服务端都可以同时发送多个请求或回应，而且不用按照顺序一一发送，这样就避免了‘队头堵塞’的问题。</li>
<li>数据流：Http2.0 使用了数据流的概念，因为 Http2.0 的数据包是不按顺序发送的，同一个链接里面连续的数据包，可能属于不同的请求。因此，必须要对数据包做标记，支出它属于哪个请求。Http2 将每个请求的所有数据包，称为一个数据流。每个数据流都有一个独一无二的编号，数据包发送时，都必须标记数据流🆔，用来区分它属于哪个数据流。</li>
<li>头信息压缩：Http2 实现了头信息压缩，由于 Http1.1 协议不带状态，每次请求都必须附上所有信息。所以，请求的很多字段都是重复的，比如 Cookie 和 User Agent，一模一样的内容，每次请求都必须附带，这会浪费很多带宽，也影响速度。Http2 对这一点做了优化，引入了头部信息压缩机制。一方面，头信息使用 GZIP 或 compress 压缩后再发送；另一方面，客户端和服务端同时维护一张头信息表，所有自动都会存入这个表，生成一个索引号，以后就不发送同样字段了，只发送索引号，提高速度。</li>
<li>服务器推送：Http2 允许服务器未经请求，主动向客户端发送资源，这叫服务器推送（推送静态资源），和 WebSocket 及时推送不同。</li>
</ul>
<p><strong>【1】队头堵塞：</strong></p>
<blockquote>
<p>队头阻塞是由 HTTP 基本的 “请求 - 应答” 模型所导致的。HTTP 规定报文必须是 “一发一收”，这就形成了一个先进先出的 “串行” 队列。队列里的请求是没有优先级的，只有入队的先后顺序，排在最前面的请求会被最优先处理。如果队首的请求因为处理的太慢耽误了时间，那么队列里后面的所有请求也不得不跟着一起等待，结果就是其他的请求承担了不应有的时间成本，造成了队头堵塞的现象。</p>
</blockquote>
<h3 id="4http和https协议的区别"><a class="markdownIt-Anchor" href="#4http和https协议的区别">#</a> 4.Http 和 Https 协议的区别</h3>
<ul>
<li>Https 协议需要 CA 证书，费用较高；而 Http 不需要；</li>
<li>Http 协议是超文本传输协议，信息是明文传输的，Https 则是具有安全性的 SSL 加密传输协议；</li>
<li>使用不同的连接方式，端口也不同，Http 协议端口是 80，Https 是 443；</li>
<li>Http 协议连接很简单，是无状态的；Https 协议是有 SSL 和 Http 协议构建的可进行加密的传输，身份认证的网络协议，比 Http 更加安全。</li>
</ul>
<h3 id="11输入浏览器按下回车发生了什么"><a class="markdownIt-Anchor" href="#11输入浏览器按下回车发生了什么">#</a> 11. 输入浏览器按下回车发生了什么？</h3>
<ol>
<li><strong>解析 URL</strong>: 首先对 URL 进行解析，分析所需要使用的传输协议和请求的资源的路径。如果输入的 URL 中的协议或者主机名不合法，将会把地址栏中输入的内容传递给搜索引擎。如果没有问题，浏览器会检查 URL 中是否出现了非法字符，存在非法字符，对非法字符转义后进行下一过程。</li>
<li><strong>缓存判断</strong>：浏览器会判断所有的请求资源是否在缓存里，如果请求的资源在缓存里并且没有失效，那么就直接使用，否则向服务器发起新的请求。</li>
<li><strong>DNS 解析</strong>：下一步首先需要获取的是输入的 Url 中的域名的 Ip 地址，首先会判断本地是否有该域名的 IP 地址的缓存，有直接使用，没有则向本地 DNS 服务器发起请求。本地 DNS 服务器也会先检查是否存在缓存，如果没有就会先向根域名服务器发起请求，获得负责的顶级域名服务器的地址后，再向顶级域名服务器请求，然后获得负责的权威的地址后，再向权威域名服务器发起请求，最终获取域名的 IP 地址后，本地 Dns 服务器再将这个 IP 地址返回给请求的用户。用户向本地 DNS 服务器发起请求属于递归请求，本地 DNS 服务器向各级域名服务器发起请求属于迭代请求。</li>
<li><strong>TCP 三次握手</strong>：下面是 TCP 建立连接的三次握手的过程，首先客户端向服务器发送一个’<strong>SYN 连接请求报文段</strong>‘和一个’<strong>seq 随机序号</strong>‘（SYN=1，seq=x），服务端收到请求后向客户端发送一个‘<strong>SYN</strong>’ ‘<strong>ACK 报文段</strong>’和一个‘<strong>seq 随机序号</strong>’，’<strong>ack 确认序号</strong>‘（ACK=1，SYN=1，seq=y，ack=x+1）。客户端收到服务器的确认应答后，进入连接的状态，同事向服务器也发送一个‘<strong>确认报文段</strong>’（ACK=1，seq=x+1，ack=y+1），服务器端接收到确认后，也进入连接建立状态，此时双方的连接就建立起来了。</li>
<li>有 Https 就是 Https 解析</li>
<li><strong>返回数据</strong>：当页面请求发送到服务器端后，服务器端会返回一个 html 文件作为响应，浏览器接收到响应后，开始对 html 文件进行解析，开始页面的渲染过程。</li>
<li><strong>页面渲染</strong>：浏览器首先会根据 HTML 文件构建 DOM 树，根据解析到的 CSS 文件构建 CSSOM 树，如果遇到 script 标签，则判断是否含有 defer 和 async 属性，要不然 script 的加载和执行会造成页面渲染的阻塞。(直接 script: 立即暂停 HTML 解析，先执行 js 代码，然后解析 HTML 代码。async: 网络请求是异步的，不会阻塞 HTML 解析，如果网络请求回来，HTML 还没有解析回来，先运行 js 然后解析 HTML 代码。defer: 异步处理，如果 HTML 解析没有解析完，先解析 HTML 后处理 js 代码。) 当 DOM 树和 CSSOM 树建立好后，根据它们来构建渲染树。渲染树构建好后，会根据渲染树进行布局。布局完成后，最后使用浏览器的 UI 接口对页面进行绘制。这个时候整个页面也就显示出来了。</li>
<li><strong>TCP 四次挥手</strong>：最后一步是 TCP 断开连接的四次挥手过程。若客户端认为数据发送完成，则它需要向服务端发送释放请求 (FIN=1,seq=u)。服务端收到连接释放请求后，会告诉应用层要释放 TCP 链接。然后会发送 ACK 包 (ACK=1,seq=v,ack=u+1), 并进入 CLOSE——WAIT 状态，此时表明客户端到服务端的连接一块释放，不再接收客户端发的数据了，客户端进入 FIN_WAIT_1 状态 (ACK=1，seq=v,ack=u+1)。但是因为 TCP 是双向的，所以服务端仍旧可以发送数据给客户端，服务端如果此时还有没发完的数据会继续发送，客户端进入 FIN_WAIT_2 状态 (FIN=1,ACK=1,seq=w,ack=u+1)，完毕后会向客户端发送连接释放请求（ACK=1,seq=u+1,ack=w+1）, 然后服务端便进入 LAST_ACK 状态。客户端收到释放请求后，向服务端发送确认应答，此时客户端进入 TIME_WAIT 状态。该状态会持续 2MSL 时间，若该时间段内没有服务端的重发请求的话，就进入 CLOSED 状态。当服务端收到确认应答后，也便进入 CLOSED 状态。</li>
</ol>
<h3 id="二-https协议"><a class="markdownIt-Anchor" href="#二-https协议">#</a> 二、HTTPS 协议</h3>
<h4 id="1什么是https协议"><a class="markdownIt-Anchor" href="#1什么是https协议">#</a> 1. 什么是 HTTPS 协议？</h4>
<p>HTTP:HTTP、TCP、IP、数据链路层<br>
 HTTPS:HTTP、安全层 (SSL/TLS)、TCP、IP、数据链路层</p>
<h2 id="三-http状态码"><a class="markdownIt-Anchor" href="#三-http状态码">#</a> 三、HTTP 状态码</h2>
<p>状态码的类别：</p>
<table>
<thead>
<tr>
<th><strong>类别</strong></th>
<th><strong>原因</strong></th>
<th><strong>描述</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>1xx</td>
<td>Informational (信息性状态码)</td>
<td>接受的请求正在处理</td>
</tr>
<tr>
<td>2xx</td>
<td>Success (成功状态码)</td>
<td>请求正常处理完毕</td>
</tr>
<tr>
<td>3xx</td>
<td>Redirection (重定向状态码)</td>
<td>需要进行附加操作一完成请求</td>
</tr>
<tr>
<td>4xx</td>
<td>Client Error (客户端错误状态码)</td>
<td>服务器无法处理请求</td>
</tr>
<tr>
<td>5xx</td>
<td>Server Error (服务器错误状态码)</td>
<td>服务器处理请求出错</td>
</tr>
</tbody>
</table>
<h3 id="5-总结"><a class="markdownIt-Anchor" href="#5-总结">#</a> 5. 总结</h3>
<p><strong>（1）2XX 成功</strong></p>
<ul>
<li>
<p>200 OK，表示从客户端发来的请求在服务器端被正确处理</p>
</li>
<li>
<p>204 No content，表示请求成功，但响应报文不含实体的主体部分</p>
</li>
<li>
<p>205 Reset Content，表示请求成功，但响应报文不含实体的主体部分，但是与 204 响应不同在于要求请求方重置内容</p>
</li>
<li>
<p>206 Partial Content，进行范围请求<br>
<strong>（2）3XX 重定向</strong></p>
</li>
<li>
<p>301 moved permanently，永久性重定向，表示资源已被分配了新的 URL</p>
</li>
<li>
<p>302 found，临时性重定向，表示资源临时被分配了新的 URL</p>
</li>
<li>
<p>303 see other，表示资源存在着另一个 URL，应使用 GET 方法获取资源</p>
</li>
<li>
<p>304 not modified，表示服务器允许访问资源，但因发生请求未满足条件的情况</p>
</li>
<li>
<p>307 temporary redirect，临时重定向，和 302 含义类似，但是期望客户端保持请求方法不变向新的地址发出请求</p>
</li>
</ul>
<p><strong>（3）4XX 客户端错误</strong></p>
<ul>
<li>400 bad request，请求报文存在语法错误</li>
<li>401 unauthorized，表示发送的请求需要有通过 HTTP 认证的认证信息</li>
<li>403 forbidden，表示对请求资源的访问被服务器拒绝</li>
<li>404 not found，表示在服务器上没有找到请求的资源</li>
</ul>
<p><strong>（4）5XX 服务器错误</strong></p>
<ul>
<li>500 internal sever error，表示服务器端在执行请求时发生了错误</li>
<li>501 Not Implemented，表示服务器不支持当前请求所需要的某个功能</li>
<li>503 service unavailable，表明服务器暂时处于超负载或正在停机维护，无法处理请求</li>
</ul>

      <div class="tags">
          <a href="/blog/tags/%E5%B0%91%E6%97%B6%E8%AF%B5%E8%AF%97%E4%B9%A6/" rel="tag"><i class="ic i-tag"></i> 少时诵诗书</a>
      </div>
  </div>

   <footer>

    <div class="meta">
  <span class="item">
    <span class="icon">
      <i class="ic i-calendar-check"></i>
    </span>
    <span class="text">更新于</span>
    <time title="修改时间：2023-08-13 20:02:27" itemprop="dateModified" datetime="2023-08-13T20:02:27+08:00">2023-08-13</time>
  </span>
</div>

      
<div class="reward">
  <button><i class="ic i-heartbeat"></i> 赞赏</button>
  <p>请我喝[茶]~(￣▽￣)~*</p>
  <div id="qr">
      
      <div>
        <img data-src="/blog/images/wechatpay.png" alt="宋胖子 微信支付">
        <p>微信支付</p>
      </div>
      
      <div>
        <img data-src="/blog/images/alipay.png" alt="宋胖子 支付宝">
        <p>支付宝</p>
      </div>
      
      <div>
        <img data-src="/blog/images/paypal.png" alt="宋胖子 贝宝">
        <p>贝宝</p>
      </div>
  </div>
</div>

      

<div id="copyright">
<ul>
  <li class="author">
    <strong>本文作者： </strong>宋胖子 <i class="ic i-at"><em>@</em></i>宋胖子
  </li>
  <li class="link">
    <strong>本文链接：</strong>
    <a href="https://song-ruipeng.gitee.io/blog/2023/04/18/%E5%8D%81.HTTP/" title="HTTP总结">https://song-ruipeng.gitee.io/blog/2023/04/18/十.HTTP/</a>
  </li>
  <li class="license">
    <strong>版权声明： </strong>本站所有文章除特别声明外，均采用 <span class="exturl" data-url="aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC9kZWVkLnpo"><i class="ic i-creative-commons"><em>(CC)</em></i>BY-NC-SA</span> 许可协议。转载请注明出处！
  </li>
</ul>
</div>

  </footer>

</article>

  </div>
  

<div class="post-nav">
    <div class="item left">
      

  <a href="/blog/2023/04/18/%E4%B8%80.%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80%E6%80%BB%E7%BB%93/" itemprop="url" rel="prev" data-background-image=" https:&#x2F;&#x2F;cancan-wx.oss-cn-hangzhou.aliyuncs.com&#x2F;bg&#x2F;6833939bly1giph4baakhj20zk0m8h5q.jpg" title="计算机网络基础总结">
  <span class="type">上一篇</span>
  <span class="category"><i class="ic i-flag"></i> 我的日志</span>
  <h3>计算机网络基础总结</h3>
  </a>

    </div>
    <div class="item right">
      

  <a href="/blog/2023/04/21/%E4%BA%8C.Event%20Loop/" itemprop="url" rel="next" data-background-image=" https:&#x2F;&#x2F;cancan-wx.oss-cn-hangzhou.aliyuncs.com&#x2F;bg&#x2F;6833939bly1gipewf5l51j20zk0m8b29.jpg" title="Event Loop">
  <span class="type">下一篇</span>
  <span class="category"><i class="ic i-flag"></i> 我的日志</span>
  <h3>Event Loop</h3>
  </a>

    </div>
</div>

  
  <div class="wrap" id="comments"></div>


        </div>
        <div id="sidebar">
          

<div class="inner">

  <div class="panels">
    <div class="inner">
      <div class="contents panel pjax" data-title="文章目录">
          <ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%B8%80http"><span class="toc-number">1.</span> <span class="toc-text"> 一.HTTP</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#1get%E5%92%8Cpost%E7%9A%84%E8%AF%B7%E6%B1%82%E7%9A%84%E5%8C%BA%E5%88%AB"><span class="toc-number">1.1.</span> <span class="toc-text"> 1.GET 和 POST 的请求的区别？</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-%E5%B8%B8%E8%A7%81%E7%9A%84http%E8%AF%B7%E6%B1%82%E6%96%B9%E6%B3%95"><span class="toc-number">1.2.</span> <span class="toc-text"> 2. 常见的 HTTP 请求方法</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#3http10%E5%92%8Chttp11%E4%B9%8B%E9%97%B4%E6%9C%89%E5%93%AA%E4%BA%9B%E5%8C%BA%E5%88%AB"><span class="toc-number">1.3.</span> <span class="toc-text"> 3.HTTP1.0 和 HTTP1.1 之间有哪些区别？</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#http10%E5%92%8Chttp11%E6%9C%89%E4%BB%A5%E4%B8%8B%E5%8C%BA%E5%88%AB"><span class="toc-number">1.3.1.</span> <span class="toc-text"> HTTP1.0 和 HTTP1.1 有以下区别:</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#http11%E5%92%8Chttp20%E7%9A%84%E5%8C%BA%E5%88%AB"><span class="toc-number">1.3.2.</span> <span class="toc-text"> Http1.1 和 Http2.0 的区别</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#4http%E5%92%8Chttps%E5%8D%8F%E8%AE%AE%E7%9A%84%E5%8C%BA%E5%88%AB"><span class="toc-number">1.4.</span> <span class="toc-text"> 4.Http 和 Https 协议的区别</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#11%E8%BE%93%E5%85%A5%E6%B5%8F%E8%A7%88%E5%99%A8%E6%8C%89%E4%B8%8B%E5%9B%9E%E8%BD%A6%E5%8F%91%E7%94%9F%E4%BA%86%E4%BB%80%E4%B9%88"><span class="toc-number">1.5.</span> <span class="toc-text"> 11. 输入浏览器按下回车发生了什么？</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%BA%8C-https%E5%8D%8F%E8%AE%AE"><span class="toc-number">1.6.</span> <span class="toc-text"> 二、HTTPS 协议</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#1%E4%BB%80%E4%B9%88%E6%98%AFhttps%E5%8D%8F%E8%AE%AE"><span class="toc-number">1.6.1.</span> <span class="toc-text"> 1. 什么是 HTTPS 协议？</span></a></li></ol></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%B8%89-http%E7%8A%B6%E6%80%81%E7%A0%81"><span class="toc-number">2.</span> <span class="toc-text"> 三、HTTP 状态码</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#5-%E6%80%BB%E7%BB%93"><span class="toc-number">2.1.</span> <span class="toc-text"> 5. 总结</span></a></li></ol></li></ol>
      </div>
      <div class="related panel pjax" data-title="系列文章">
        <ul>
          <li><a href="/blog/2022/08/20/%E4%B9%9D.Vue/" rel="bookmark" title="vue总结">vue总结</a></li><li class="active"><a href="/blog/2023/04/18/%E5%8D%81.HTTP/" rel="bookmark" title="HTTP总结">HTTP总结</a></li><li><a href="/blog/2023/04/18/%E4%B8%80.%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80%E6%80%BB%E7%BB%93/" rel="bookmark" title="计算机网络基础总结">计算机网络基础总结</a></li><li><a href="/blog/2023/04/21/%E4%BA%8C.Event%20Loop/" rel="bookmark" title="Event Loop">Event Loop</a></li><li><a href="/blog/2023/05/05/%E4%B8%89.Css/" rel="bookmark" title="CSS">CSS</a></li><li><a href="/blog/2023/05/17/%E5%9B%9B.JS/" rel="bookmark" title="JS">JS</a></li><li><a href="/blog/2023/06/12/%E4%BA%94.template/" rel="bookmark" title="Template">Template</a></li><li><a href="/blog/2023/07/03/%C2%A0%E5%85%AD.%E8%AF%BB%E6%BA%90%E7%A0%81%E7%90%86%E8%A7%A3Vnode/" rel="bookmark" title="读源码理解Vnode">读源码理解Vnode</a></li><li><a href="/blog/2023/07/18/%E4%B8%83.React/" rel="bookmark" title="React">React</a></li><li><a href="/blog/2023/07/20/%E5%85%AB.%E8%AF%BB%E3%80%8AVuejs%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0%E3%80%8B%E6%80%BB%E7%BB%93/" rel="bookmark" title="读《Vuejs设计与实现》总结">读《Vuejs设计与实现》总结</a></li><li><a href="/blog/2023/07/25/%E4%B9%9D.React%E9%9D%A2%E8%AF%95/" rel="bookmark" title="React面试">React面试</a></li><li><a href="/blog/2023/07/25/%E5%8D%81%E4%B8%80.%E8%87%AA%E6%B5%8B1/" rel="bookmark" title="自测1">自测1</a></li><li><a href="/blog/2023/08/15/%E5%8D%81%E4%BA%8C.Supense%E5%92%8C%E5%BC%82%E6%AD%A5%E7%BB%84%E4%BB%B6%E8%A7%A3%E5%86%B3%E9%A6%96%E9%A1%B5%E7%99%BD%E5%B1%8F%E9%97%AE%E9%A2%98/" rel="bookmark" title="Supense和异步组件解决首页白屏问题">Supense和异步组件解决首页白屏问题</a></li>
        </ul>
      </div>
      <div class="overview panel" data-title="站点概览">
        <div class="author" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <img class="image" itemprop="image" alt="宋胖子"
      data-src="/blog/images/avatar.jpg">
  <p class="name" itemprop="name">宋胖子</p>
  <div class="description" itemprop="description">欢迎大家一起交流</div>
</div>

<nav class="state">
    <div class="item posts">
      <a href="/blog/archives/">
        <span class="count">13</span>
        <span class="name">文章</span>
      </a>
    </div>
    <div class="item categories">
      <a href="/blog/categories/">
        <span class="count">1</span>
        <span class="name">分类</span>
      </a>
    </div>
    <div class="item tags">
      <a href="/blog/tags/">
        <span class="count">1</span>
        <span class="name">标签</span>
      </a>
    </div>
</nav>

<div class="social">
</div>

<ul class="menu">
  
    
  <li class="item">
    <a href="/blog/" rel="section"><i class="ic i-home"></i>首页</a>
  </li>


</ul>

      </div>
    </div>
  </div>

  <ul id="quick">
    <li class="prev pjax">
        <a href="/blog/2023/04/18/%E4%B8%80.%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80%E6%80%BB%E7%BB%93/" rel="prev" title="上一篇"><i class="ic i-chevron-left"></i></a>
    </li>
    <li class="up"><i class="ic i-arrow-up"></i></li>
    <li class="down"><i class="ic i-arrow-down"></i></li>
    <li class="next pjax">
        <a href="/blog/2023/04/21/%E4%BA%8C.Event%20Loop/" rel="next" title="下一篇"><i class="ic i-chevron-right"></i></a>
    </li>
    <li class="percent"></li>
  </ul>
</div>


        </div>
        <div class="dimmer"></div>
      </div>
    </main>
    <footer id="footer">
      <div class="inner">
        <div class="widgets">
          
<div class="rpost pjax">
  <h2>随机文章</h2>
  <ul>
      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2023/04/21/%E4%BA%8C.Event%20Loop/" title="Event Loop">Event Loop</a></span>
  </li>

      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2023/04/18/%E5%8D%81.HTTP/" title="HTTP总结">HTTP总结</a></span>
  </li>

      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2023/04/18/%E4%B8%80.%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80%E6%80%BB%E7%BB%93/" title="计算机网络基础总结">计算机网络基础总结</a></span>
  </li>

      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2023/07/18/%E4%B8%83.React/" title="React">React</a></span>
  </li>

      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2022/08/20/%E4%B9%9D.Vue/" title="vue总结">vue总结</a></span>
  </li>

      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2023/06/12/%E4%BA%94.template/" title="Template">Template</a></span>
  </li>

      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2023/07/03/%C2%A0%E5%85%AD.%E8%AF%BB%E6%BA%90%E7%A0%81%E7%90%86%E8%A7%A3Vnode/" title="读源码理解Vnode">读源码理解Vnode</a></span>
  </li>

      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2023/07/20/%E5%85%AB.%E8%AF%BB%E3%80%8AVuejs%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0%E3%80%8B%E6%80%BB%E7%BB%93/" title="读《Vuejs设计与实现》总结">读《Vuejs设计与实现》总结</a></span>
  </li>

      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2023/07/25/%E4%B9%9D.React%E9%9D%A2%E8%AF%95/" title="React面试">React面试</a></span>
  </li>

      
  <li class="item">
    
<div class="breadcrumb">
<a href="/blog/categories/%E6%88%91%E7%9A%84%E6%97%A5%E5%BF%97/" title="分类于 我的日志">我的日志</a>
</div>

    <span><a href="/blog/2023/08/15/%E5%8D%81%E4%BA%8C.Supense%E5%92%8C%E5%BC%82%E6%AD%A5%E7%BB%84%E4%BB%B6%E8%A7%A3%E5%86%B3%E9%A6%96%E9%A1%B5%E7%99%BD%E5%B1%8F%E9%97%AE%E9%A2%98/" title="Supense和异步组件解决首页白屏问题">Supense和异步组件解决首页白屏问题</a></span>
  </li>

  </ul>
</div>
<div>
  <h2>最新评论</h2>
  <ul class="leancloud-recent-comment"></ul>
</div>

        </div>
        <div class="status">
  <div class="copyright">
    
    &copy; 2010 – 
    <span itemprop="copyrightYear">2023</span>
    <span class="with-love">
      <i class="ic i-sakura rotate"></i>
    </span>
    <span class="author" itemprop="copyrightHolder">宋胖子 @ Yume Shoka</span>
  </div>
  <div class="powered-by">
    基于 <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlv">Hexo</span> & Theme.<span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2FtZWhpbWUvaGV4by10aGVtZS1zaG9rYQ==">Shoka</span>
  </div>
</div>

      </div>
    </footer>
  </div>
<script data-config type="text/javascript">
  var LOCAL = {
    path: '2023/04/18/十.HTTP/',
    favicon: {
      show: "（●´3｀●）やれやれだぜ",
      hide: "(´Д｀)大変だ！"
    },
    search : {
      placeholder: "文章搜索",
      empty: "关于 「 ${query} 」，什么也没搜到",
      stats: "${time} ms 内找到 ${hits} 条结果"
    },
    valine: true,fancybox: true,
    copyright: '复制成功，转载请遵守 <i class="ic i-creative-commons"></i>BY-NC-SA 协议。',
    ignores : [
      function(uri) {
        return uri.includes('#');
      },
      function(uri) {
        return new RegExp(LOCAL.path+"$").test(uri);
      }
    ]
  };
</script>

<script src="https://cdn.polyfill.io/v2/polyfill.js"></script>

<script src="//cdn.jsdelivr.net/combine/npm/pace-js@1.0.2/pace.min.js,npm/pjax@0.2.8/pjax.min.js,npm/whatwg-fetch@3.4.0/dist/fetch.umd.min.js,npm/animejs@3.2.0/lib/anime.min.js,npm/algoliasearch@4/dist/algoliasearch-lite.umd.js,npm/instantsearch.js@4/dist/instantsearch.production.min.js,npm/lozad@1/dist/lozad.min.js,npm/quicklink@2/dist/quicklink.umd.js"></script>

<script src="/blog/js/app.js?v=0.2.5"></script>




</body>
</html>
